﻿using mozhi.smarterp.Finance.Enums;
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace mozhi.smarterp.Finance.Treasuries.Payments.Requisition
{
    public interface IPaymentRequisitionAppService : IApplicationService
    {
        Task<PaymentRequisitionDto> GetAsync(Guid id);

        Task<PagedResultDto<PaymentRequisitionDto>> GetListAsync(PaymentRequisitionPagedResultRequestDto filter);

        Task<PaymentRequisitionDto> CreateAsync(PaymentRequisitionCreateDto input);

        Task<PaymentRequisitionDto> UpdateAsync(PaymentRequisitionUpdateDto input);

        Task DeleteAsync(Guid id);

        Task<Guid> PushPaymentAsync(Guid id);

        Task<PaymentRequisitionDto> UpdateStatusAsync(Guid id, DocumentStatusType status);
    }
}
